import axios from "axios"; //npm i axios
import nprogress from "nprogress"; //没有 npm i nprogress
import "nprogress/nprogress.css";
export const serverUrl = "http://localhost:3006"; //调接口必须改
import { getToken } from '../utils/tools.js'
import router from '../router/index.js'
import { message } from "ant-design-vue";
const network = axios.create({
  baseURL: serverUrl,
  timeout: 3000,
});
// 添加请求拦截器
network.interceptors.request.use(
  function (config) {
    nprogress.start();
    // 在发送请求之前做些什么
    config.headers["token"] = getToken(); //设置请求头
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
network.interceptors.response.use(
  function (response) {
    nprogress.done();
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response.data;
  },
  function (error) {
    nprogress.done();
    if (error.response.status == 401) {
      router.push({ path: '/login' })
      message.info('请重新登录')
    }
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);
/**
 * get请求
 * @param {*} url
 * @param {*} params
 * @returns
 */
export const get = (url, params) => network.get(url, { params });
/**
 * post请求
 * @param {*} url
 * @param {*} data
 * @returns
 */
export const post = (url, data) => network.post(url, data);
/**
 * put请求
 * @param {*} url
 * @param {*} data
 * @returns
 */
export const put = (url, data) => network.put(url, data);
/**
 * del请求
 * @param {*} url
 * @param {*} data
 * @returns
 */
export const del = (url) => network.delete(url);
/**
 * patch请求
 * @param {*} url
 * @param {*} data
 * @returns
 */
export const patch = (url, data) => network.patch(url, data);
/**
 * 图片路径封装
 * @param {*} url
 * @returns
 */
export const dalImg = (url) => {
  if (url) {
    if (url.startsWith("http")) {
      return url;
    } else {
      return serverUrl + url;
    }
  }
  //如果没有图片默认请求图片地址
  return "https://act-webstatic.mihoyo.com/puzzle/mall/mall_cn__1697092274/resource/puzzle/2023/09/28/39e87dab1aa3bbb921e82bc808394740_4245940961371789963.jpg?x-oss-process=image/format,webp/quality,Q_90&quot";
};
